Self-propelled device with center of mass drive system

ABSTRACT

A self-propelled device is disclosed that includes a center of mass drive system. The self-propelled device includes a substantially cylindrical body and wheels, with each wheel having a diameter substantially equivalent to the body. The self-propelled device may further include an internal drive system with a center of mass below a rotational axis of the wheels. Operation and maneuvering of the self-propelled device may be performed via active displacement of the center of mass.

BACKGROUND

Self-propelled devices have previously been powered by inertia ormechanical energy storage in devices such as coiled springs. Remotecontrolled devices typically use electric motors to engage one or morewheels of the device in order to cause the device to move. As technologyhas evolved, new methods of propelling and controlling these deviceshave been implemented.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure herein is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements, and in which:

FIG. 1 is a block diagram illustrating interior components of an exampletubular self-propelled device;

FIG. 2 is a block diagram illustrating an exploded view of an exampletubular self-propelled device;

FIG. 3 is a schematic depiction of interior components of an exampleself-propelled device;

FIG. 4A is a schematic depiction of an example system comprising aself-propelled device and a computing device;

FIG. 4B depicts an example system comprising computing devices andself-propelled devices;

FIG. 4C is a schematic depiction that illustrates an example systemcomprising a computing device and multiple self-propelled devices;

FIG. 5 illustrates a mechanism for moving the self-propelled device;

FIGS. 6A and 6B illustrate example mechanisms for causing directionalchange of the self-propelled device; and

FIGS. 7A and 7B illustrate examples of a self-propelled device withattached example accessories.

DETAILED DESCRIPTION

Examples described herein provide for a cylindrical bodied device thatis propelled, at least partially, via displacement of its center ofmass. The self-propelled device includes a controllable drive systemthat can rotate in order to cause the self-propelled device to move.Furthermore, the self-propelled device can be controlled by an externalcomputing device operated by a user. Furthermore, the device can includewheels at either end of the cylindrical body. The wheels have a diameterthat is substantially equivalent to the diameter of the cylindricalbody. Further still, removable wheel coverings (e.g., tires) and/orremovable hub covers may also be included.

Examples also provide a self-propelled device that has a substantiallycylindrical body with various components disposed therein that cause theself-propelled device to move. These components include a center of massdrive system contained within the body, a pair of wheels coupled to thedrive system and disposed on either end of the self-propelled device,and a pair of motors to independently operate each of the wheels. Themotors are powered by one or more power units included in the drivesystem. Furthermore, the drive system can have a center of mass below acommon rotational axis of both of the wheels. Also, the wheels may havea diameter that is substantially equivalent to the diameter of thecylindrical body.

Additionally, the self-propelled device can include a wirelesscommunication port and receiver to receive control inputs from acontroller device. The control inputs may be processed by a processorcoupled to the wireless communication port to ultimately maneuver theself-propelled device. Further, the processor translates the controlinputs to independently operate the left motor and the right motorand/or rotationally pitch the entire drive system so as to displace thecenter of mass of both the drive system and the self-propelled device inorder to cause the self-propelled device to move.

One or more embodiments described herein provide that methods,techniques, and actions performed by a computing device are performedprogrammatically, or as a computer-implemented method. Programmatically,as used herein, means through the use of code or computer-executableinstructions. These instructions can be stored in one or more memoryresources of the computing device. A programmatically performed step mayor may not be automatic.

One or more embodiments described herein can be implemented usingprogrammatic modules or components of a system. A programmatic module orcomponent can include a program, a sub-routine, a portion of a program,or a software component or a hardware component capable of performingone or more stated tasks or functions. As used herein, a module orcomponent can exist on a hardware component independently of othermodules or components. Alternatively, a module or component can be ashared element or process of other modules, programs or machines.

Some embodiments described herein can generally require the use ofcomputing devices, including processing and memory resources. Forexample, one or more embodiments described herein can be implemented, inwhole or in part, on computing devices such as digital cameras, digitalcamcorders, desktop computers, cellular or smart phones, personaldigital assistants (PDAs), laptop computers, printers, digital pictureframes, and tablet devices. Memory, processing, and network resourcesmay all be used in connection with the establishment, use, orperformance of any embodiment described herein (including with theperformance of any method or with the implementation of any system).

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown or described with figures below provide examplesof processing resources and computer-readable mediums on whichinstructions for implementing embodiments can be carried and/orexecuted. In particular, the numerous machines shown with embodimentsinclude processor(s) and various forms of memory for holding data andinstructions. Examples of computer-readable mediums include permanentmemory storage devices, such as hard drives on personal computers orservers. Other examples of computer storage mediums include portablestorage units, such as CD or DVD units, flash memory (such as carried onsmart phones, multifunctional devices or tablets), and magnetic memory.Computers, terminals, network enabled devices (e.g., mobile devices,such as cell phones) are all examples of machines and devices thatutilize processors, memory, and instructions stored on computer-readablemediums. Additionally, embodiments may be implemented in the form ofcomputer-programs, or a computer usable carrier medium capable ofcarrying such a program.

As used herein, the term “substantially” means at least almost entirely.In quantitative terms, “substantially” may be deemed to be at least 50%of a stated reference (e.g., quantity of size or shape).

FIG. 1 is a block diagram illustrating interior components of an exampletube-shaped self-propelled device 100. Central components of theself-propelled device 100 includes a drive system 102 having a pair ofadjacent motors 104, 106 each corresponding to a respective wheel 108,110. Furthermore, each wheel 108, 110 can include an attached gear 114,116 that couples to a respective motor 104, 106. The self-propelleddevice further includes a receiver 118 to receive control inputs from anexternal computing device. The control inputs can be processed by aprocessor supported on a circuit board 112 which can translate thecontrol inputs into commands to operate the motors 104, 106 either inconjunction and/or independently. One or more of the components of theself-propelled device, such as the motors 104, 106, components of thecircuit board 112, and/or the receiver 118, may be powered by one ormore power units 122, 124. Components of the circuit board 112 caninclude one or more memory resources and/or processing meansimplementing control logic for translating the control inputs receivedfrom the external computing device into commands in order to operate themotors 104, 106.

Referring still to FIG. 1, the drive system 102 can be mounted orotherwise attached to a carrier 126. The carrier 126 can include aplurality of mount points upon which components of the self-propelleddevice 100 may be mounted. As an addition or alternative, selectcomponents of the self-propelled device 100 can be bonded or otherwiseconnected to the carrier 126. As described in detail below, theself-propelled device can also include an external body to be mountedrigidly to the carrier 126 or drive system 102.

The drive system 102 can be comprised of a left motor 104 and a rightmotor 106. The motors 104, 106 can be standard electric motors orcustomized electric motors capable of producing any power output. Thus,the scale or size of each of the respective components of theself-propelled device can be modified in order to conform to any desireduse. For example, the self-propelled device 100 may include relativelysmall electric motors for use as a remote controlled vehicle.Alternatively, for example, the self-propelled device may includerelatively large motors, such as petroleum powered engines for anyvariety of industrial or practical uses.

The left motor 104 and the right motor 106 include a respective leftaxle 128 and a right axle 130. The axles 128, 130 may be toothed orotherwise configured to couple to the gears 114, 116 such thatrotational energy of the motors 104, 106 directly causes the wheels 108,110 and/or the drive system 102 itself to rotate accordingly.Additionally or as an alternative, a mass ratio of the motors 104, 106with respect to the wheels 108, 110 may be such that when the motors104, 106 engage the wheels, the entire drive system 102 is rotationallypitched such that a center of mass 120 of the drive system 102 and/orthe self-propelled device 100 is displaced so as to cause theself-propelled device 100 to move. Furthermore, the left motor 104 andthe right motor 106 are configured to operate independently and inconjunction.

For example, control logic can interpret control inputs from a user ofthe external computing device instructing the self-propelled device 100to move linearly in a direction perpendicular to a common rotationalaxis of both the left wheel 108 and the right wheel 110. The controllogic can translate the inputs into commands to operate the motors 104,106 in conjunction, causing the drive system 102, along with othercomponents of the self-propelled device 100, to rotationally pitch,thereby displacing its center of mass 120 accordingly and causing theself-propelled device 100 to move linearly. For example, rotationallypitching the drive system 102 upwards and forwards causes the center ofmass 120 of the entire device to move forward, thus causing theself-propelled device 100 to move linearly. Additionally, the controllogic may interpret control inputs instructing the self-propelled device100 to move in any number of directions perpendicular to a vertical axisof the device 100. Accordingly, the control logic can translate theinputs into commands to operate the motors 104, 106 independently toindividually deliver power to each wheel 108, 110 in order to cause theself-propelled device 100 to change direction. Independent andconjunctive operation of the motors 104, 106 can be performeddynamically in response to a user's control inputs on an externalcomputing device.

FIG. 1 further illustrates a structural example of the wheels 108, 110of the self-propelled device. As an example, the wheels 108, 110 may beformed of any suitable material, such as a composite plastic and/orrubber compound. However, the material used to form the wheels 108, 110are not limited to any particular compound, but rather can be anycylindrical body which can be configured to be fastened to the drivesystem 102. The wheels 108, 110 may further be formed with a treadedcontact surface to increase grip. Additionally or as an alternative,removable wheel coverings or tires can be fitted over the wheels 108,110 to further increase grip while the self-propelled device 100 isbeing maneuvered. Further, the gears 114, 116 can be formed at leastpartially within an interior surface of each wheel 108, 110 such thatthe wheel and gear combination may be inserted, and/or fastened to thedrive system 102. Alternatively, the gears 114, 116 can be removablefrom the wheels 108, 110 and provided as separate components of theself-propelled device 100. Each wheel 108, 110 can further include awheel hub 132 upon which a removable hub cover can be attached, asfurther described below. The wheel hub 132 is formed within and outersurface of each wheel 108, 110, or the wheel hub 132 can be removablefrom each wheel 108, 110. Alternatively, the wheels of theself-propelled device can be formed with a hollow inner radius, withinwhich gears and wheel hubs can be fitted or formed. For example, thegear 114 and wheel hub 132 can be combined as a single part to be fittedor formed within the inner radius of the wheel 108.

The self-propelled device 100 further includes a circuit board 112 uponwhich any number of electronic components may be installed or supported.These electronic components can include any combination of a memoryresource, a processing means, sensors, a wireless communication port,and connection ports providing leads to the power units 122, 124, themotors 104, 106, and/or other components of the self-propelled device,as discussed in further detail below. A receiver 118 is provided and iscoupled to the wireless communication port to allow for wirelesscommunication with an external computing device providing control inputsfor the self-propelled device 100. The receiver 118 can be an antennaarray, and/or can be configured for a variety of communicationstandards, such as any radio frequency (RF) communication, includingBLUETOOTH, short-range RF communication, and/or line of sightcommunication. Additionally or as an alternative, the receiver 118 mayallow for the self-propelled device 100 to wirelessly connect to avariety of network technologies, including the Internet, World Wide Web,wireless links, wireless radio-frequency communications utilizingnetwork protocol, optical links, or any available network communicationtechnology. Examples of such network links comprise various radiofrequency data communication systems, including, for example, thoseknown as WI-FI, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n,IEEE 802.11ac, IEEE 802.11ad, and/or 802.11ah. Other radio frequencydata links may be formed using cellular telephone service or serialcommunication protocols using radio modems. Furthermore, opticalcommunication links may be employed, including modulating properties oflight and LASER beams.

One or more power units 122, 124 are included to store energy foroperating the electronics and electromechanical components of the device100. The power units 122, 124 can be any type of battery or energystorage unit suitable for installation within the device 100. Forexample, the power units 122, 124 can be rechargeable batteries such aslithium ion batteries. Additionally or as an alternative, the powerunits 122, 124 can be rechargeable via an inductive or wired chargeport, which can be included to recharge the power units 122, 124 withoutthe need for a wired electrical connection.

FIG. 2 is a block diagram illustrating an exploded view of an examplecylindrical self-propelled device 200. When describing certain examplesand details of FIG. 2, reference may be made to features and referencecharacters of FIG. 1. Furthermore, the self-propelled device 200 of FIG.2 may include any combination of the previously discussed features withrespect to FIG. 1. These include, without limitation, the drive system205 including a left motor 202 and a right motor 204 with respectiveaxles, one or more power units 208, a carrier 234, a circuit board 216with any number of electronic components, and an receiver 218 which canbe configured or included as any variety of wireless communicationstandards and/or technologies. Hereinafter, the above features may bereferred individually or collectively as the “interior components” ofthe self-propelled device 200.

Referring to FIG. 2, the above features are included within a body 214of the self-propelled device 200. Furthermore, any combination of theabove features can be configured to be rigid to the body 214. Forexample, the carrier 234 can be mounted or otherwise attached to aninner portion of the body 214. Alternatively, any number interiorcomponents of the self-propelled device 200 can be coupled to the innerportion of the body 214. Accordingly, due to the interior componentsbeing rigid to the body 214, the body 214 can rotate in conjunction withthe rotational pitch of the drive system 205 when the self-propelleddevice 200 is being maneuvered.

The body 214 is substantially cylindrical in shape and can include anynumber of designs and features. For example, the body can be at leastpartially transparent such that light from an internal light emittingcomponent disposed within the body is apparent from outside of thedevice 200. The internal light emitting component can be any type ofilluminating element, such as one or more light-emitting diodes (LEDs)or one or more LED arrays. The illuminating element can be affixed tothe carrier 234, or any other interior component of the self-propelleddevice 200. As an addition or alternative, the body 214 can be comprisedof sealed polycarbonate plastic or other composite that can be texturedto diffuse light from the internal illuminating element.

Furthermore, the body 214 may be composed of a material that allows fortransmission of signals used for wireless communication. Still further,an outer surface of the body 214 can be comprised of a material that issubstantially impervious to moisture and every day wear and tear. Thebody 214 can be detachable from the self-propelled device 200 to allowfor access to the interior components, and may further be durable,washable, and/or shatter resistant.

Additionally or as an alternative, the body 214 can include fastening orattachment points to allow for removable accessories to be attached tothe exterior of the body 214. As discussed in further detail below,these accessories may include, for example, an attachable head lamp or atrailer attachment.

As shown in FIG. 2 for illustrative purposes, the gear 212 for aparticular wheel 208 can be molded or formed at least partially withinan interior portion of a wheel, such as illustrated by wheel 208.Alternatively, the gear 210 can be included as a portion of a powertrain in which the motor 202 is coupled to an axle 234 and gear 210combination. Accordingly, the axle 234 and gear 210 combination may thenbe fitted to the wheel 206. Alternatively, an axle and gear combinationcan be formed at least partially within an interior portion of a wheel.

Still further, a wheel hub can be (i) formed at least partially withinan outer portion of a respective wheel (not shown), (ii) formed incombination with a gear within an inner radius of a wheel (also notshown), or (iii) part of the power train attached to the gear 210 andaxle 234. In the latter example, the wheel hub 236 can be a part of orcoupled to the axle 234, and can further be configured to protrude fromthe outer portion of the wheel 206. The self-propelled device 200 canfurther incorporate removable hub covers 222, 224 that can be readilyattached and detached from the wheel hubs 236. The hub covers 222, 224may come in a variety of different colors and/or styles accordingly to auser's preference. Alternatively, the hub covers 222, 224 can be affixedsemi-permanently to the wheel hubs 236. The hub covers 222, 224 may bemade from a hard or soft plastic, plastic/rubber composite or compound,metal, or any other suitable material.

The wheels 206, 208 can allow for wheel coverings 226, 228 (e.g., tires)to be fitted over them. The wheel coverings 226, 228 can be removableand be formed of a soft rubber compound. However, the wheel coverings226, 228 are not limited to soft rubber, and may be made of anycompound. The wheel coverings 226, 228 may include any number of treadpatterns for specialized or simply stylistic purposes. The wheelcoverings 226, 228 can also come in a variety of different styles and/orcolors according to a user's preference. In variations, the wheels 206,208 have the same or substantially the same height as the body 214, andthe wheel coverings 226, 228 can allow for a slight height advantage ofthe wheel and tire combination with respect to the body. Alternatively,the wheels 206, 208 can be significantly larger in height than the body214.

Electronics

FIG. 3 is a schematic depiction of interior components of an exampleself-propelled device 300. The interior components can be supported on,for example, the circuit boards (126, 234) of FIGS. 1 and 2.Alternatively, certain interior components of the self-propelled device300 can be mounted or otherwise attached or connected to any otherinterior component or even the inner surface of the body 214. Referringto FIG. 3, the self-propelled device 300 may be operated to move underthe control of another device, such as an external computing deviceoperated by a user. Furthermore, the self-propelled device 300 can beconfigured with resources that enable one or more of the following: (i)maintain self-awareness of orientation and/or position relative to aninitial reference frame after the device initiates movement; (ii)process control inputs programmatically, so as to enable a diverse rangeof program-specific responses to different control inputs; (iii) enableanother device to control its movement using software or programminglogic that is communicative with programming logic on the self-propelleddevice; and/or (iv) generate an output response for its movement andstate that it is software interpretable by the control device.

Additionally, the self-propelled device 300 includes severalinterconnected subsystems and modules. For example, a processor 314 canexecute programmatic instructions from a program memory 304. Theinstructions stored in the program memory 304 can be changed, forexample to add features, correct flaws, or modify behavior. Furthermore,the program memory 304 can store programming instructions that arecommunicative or otherwise operable with software executing on acomputing device. The processor 314 can further be configured to executedifferent programs of programming instructions, in order to after themanner in which the self-propelled device 300 interprets or otherwiseresponds to control input from another computing device. Additionally oras an alternative, the computing device executes a software applicationspecific to controlling the self-propelled device 300 that automaticallylinks the computing device to the self-propelled device 300.

The wireless communication port 310, in conjunction with a communicationreceiver 302, can serve to exchange data between the processor 314 andother external devices. The data exchanges, for example, providecommunications, control, logical instructions, state information, and/orupdates for the program memory 304. As an addition or alternative, theprocessor 314 can generate an output corresponding to state and/orposition information, which can be communicated to the externalcomputing device via the wireless communication port 310 and thereceiver 302. The mobility of the device may make wired connectionsundesirable, so the term “connection” may be understood to mean alogical connection made without a physical attachment to self-propelleddevice 300.

The wireless communication port 310 may implement BLUETOOTHcommunications protocol and the receiver 302 may be suitable fortransmission and reception of BLUETOOTH radio signals. However,alternatively, other wireless communication mediums and protocols mayalso be used.

The interior components may include sensors 312 that can provideinformation about the surrounding environment and condition to theprocessor 314. The sensors 312 can include inertial measurement devices,including a gyroscope, one or more accelerometers, and/or one or moremagnetometers. The sensors 314 can provide inputs to enable theprocessor 314 to maintain awareness of the device's 300 orientationand/or position relative to an initial reference frame after the deviceinitiates movement. Additionally or as an alternative, the sensors 312include instruments for detecting light, temperature, humidity, and/ormeasuring chemical concentrations or radioactivity.

The self-propelled device can include a state/variable memory 306 whichcan store information about the present state of the device 300,including, for example, position, orientation, and rates of rotation.The state/variable memory 306 can also store information correspondingto an initial reference frame of the device upon, for example, thedevice being put in use (e.g., the device being switched on), as well asposition and orientation information once the device is in use. In thismanner, some embodiments provide for the device 300 to utilizeinformation of the state/variable memory 306 in order to maintainposition and orientation information of the device 300 when the device300 is being controlled

A clock 308 can be included to provide timing information to theprocessor 314. As such, the clock 308 provides a time-base for measuringintervals and rates of change. Additionally or alternatively, the clock308 can provide day, date, year, time, and alarm functions, and canallow the device 300 to provide an alarm or alert at pre-set times.

An expansion port 320 can be included to provide a connection foradditional accessories or devices. The expansion port 320 provides forfuture expansion, as well as flexibility to add options or enhancements.For example, the expansion port 320 can be used to add peripherals,sensors, processing hardware, storage, displays, or actuators to a basicself-propelled device 300. As such, the expansion port 320 can providean interface capable of communicating with a suitably configuredcomponent using analog or digital signals. Additionally, the expansionport 320 can provide one or more electrical interfaces and/or protocolsthat are standard or well-known. The expansion port 320 can alsoimplement an optical interface. Example interfaces that for theexpansion port 320 include Universal Serial Bus (USB), Inter-IntegratedCircuit Bus (I2C), Serial Peripheral Interface (SPI), or ETHERNET.

As an addition or alternative, a display 318 can be included to presentvisual cues or information to external devices or persons. For example,the display 318 can produce light in colors and patterns, and may beimplemented in conjunction with an audio device and/or a vibratingcomponent providing haptic responses to various conditions. The display318 can further operate in conjunction with motors 326 to communicationinformation by physical movements of the device 300.

In variations, the display 318 is a light emitting element, either inthe visible or invisible range. Invisible light in the infrared orultraviolet range may be useful, for example, to send informationinvisible to human senses but available to specialized detectors.Alternatively, the display 318 can include an array of LEDs and emitvarious frequencies of visible light, and can be arranged such thattheir relative intensity can vary and the light emitted may be blendedto form color mixtures. As an addition or alternative, the display 318includes an LED array comprising several LEDs. The processor 314 can beconfigured to vary the relative intensity of each of the LEDs or LEDarrays to produce a wide range of colors. Primary colors of light can beemitted by each LED array and can be blended qualitatively to produce awide gamut of apparent colors. For example, respective red, green, andblue LEDs comprise a usable set of three available primary-color devicescomprising the display 318. However, other sets of colors and white LEDscan be utilized. Further, the display 318 can include an LED used toindicate a reference point on device 300 for alignment.

One or more power units 324 store energy for operating the electronicsand electromechanical components of the device 300. The power units 324can be comprised of one or more rechargeable lithium ion batteries.However, any type of energy storage units may be suitable for use as thepower units 324, including alkaline, dry cell, aluminum ion, nickeloxyhydroxide, silver oxide, zinc, lead-acid, polymer-based, nickel iron,or nickel zinc batteries. Furthermore, a charge port 328 (e.g.,inductive or USB) can be included to allow for recharging the powerunits 324 without a wired electrical connection. As such, the chargeport 328 can recharge the power units 324 through an induction coil inthe device 300 via an externally generated electromagnetic field of aninduction charger.

In some variations, device 300 may further include a deep sleep sensor322 to place the self-propelled device 300 into a very low power or“deep sleep” mode where most of the interior electrical components uselittle or no battery power. The deep sleep sensor 322 can sense throughthe body of the device 300 without a wired connection, and as such maybe provided as a Hall Effect sensor mounted so that an external magnetcan be applied at a pre-determined location on device 300 to activatethe deep sleep mode. Additionally or as an alternative, the device 300is placed in the deep sleep mode automatically upon placement on aninduction charger, or otherwise upon activation of the charge port 328.Further still, the device can be placed in the deep sleep mode via auser input through an external computing device.

As an alternative or variation, a Bluetooth Low Energy mechanism can beutilized to maintain a low current draw that is responsive to a wirelesssignal. Such a variation can, for example, provide an alternative to thedeep sleep mode.

Motors 326 are included to convert electrical energy from the powerunits 324 into mechanical energy and can be controlled by the processor314. For example, the motors 326 can be in the form of the left andright motors (104, 106, 202, 204) of FIGS. 1 and 2. The primary purposeof the motors 326 is to activate the drive system in order to propel andsteer the self-propelled device 300. However, the motors 326 alsoprovide weight to the drive system and hang below the carrier to lowerthe center of mass of the self-propelled device. As such, the motors 326can activate the drive system, the body, and/or other interiorcomponents of the self-propelled device to pitch rotationally,displacing the center of mass and causing the device 300 to move.Furthermore, the motors 326 can be variable-speed motors and apply powerindependently to each of the wheels through a reduction gear system.Each of the wheels can be mounted to an axle connected to a respectivevariable speed motor. As such, the delivered power of the motors can becontrolled by the processor 314 to maneuver the device in any givendirection.

Furthermore, the motors 326 can produce a variety of movements inaddition to merely rotating and steering the device 300. Thus, controllogic stored in the program memory 304 can implement the processor toactuate the motors 326 to cause the device 300 to execute a variety ofcomplex movements and gestures, including nodding, shaking, trembling,spinning, or flipping. As such, the processor 314 can coordinate themotors 326 with the display 318 in order to provide visual associationfor such movements and gestures. For example, the processor 314 canprovide signals to the motors 326 and the display 318 to cause thedevice 300 to spin or tremble and simultaneously emit patterns ofcolored light synchronized with the movements.

The self-propelled device 300 may be used as a controller for othernetwork-connected devices. As such, the device 300 can include sensorsand/or wireless communication capabilities to perform a controller rolefor other devices. For example, self-propelled device 300 can be held ina user's hand and used to sense gestures, movements, rotations,combination inputs and the like.

Operation and Communication Links

FIG. 4A is a schematic depiction of an embodiment comprising aself-propelled device 414 and a computing device 408 under control of auser 402. More specifically, the self-propelled device 414 can becontrolled in its movement by programming logic and/or controls that canoriginate from the computing device 408. The computing device 408 canwirelessly communicate control data to the self-propelled device 414using a standard or proprietary wireless communication protocol. Invariations, the self-propelled device 414 may be at least partiallyself-controlled, utilizing sensors and internal programming logic tocontrol the parameters of its movement (e.g., velocity, direction,etc.). Still further, the self-propelled device 414 can communicate datarelating to the device's position and/or movement parameters for thepurpose of generating or alternating content on the computing device408. In additional variations, the self-propelled device 414 can controlaspects of the computing device 408 by way of its movements and/orinternal programming logic.

As described herein, the self-propelled device 414 can have multiplemodes of operation, including those of operation in which the device iscontrolled by the computing device 408, is a controller for anotherdevice (e.g., another self-propelled device or the computing device408), and/or is partially or wholly self-autonomous.

Additionally, the self-propelled device 414 and the computing device 408may share a computing platform on which programming logic is shared inorder to enable, among other features, functionality that includes: (i)enabling the user 402 to operate the computing device 408 to generatemultiple types of inputs, including simple directional input, commandinput, gesture input, motion or other sensory input, voice input orcombinations thereof; (ii) enabling the self-propelled device 414 tointerpret inputs received from the computing device 408 as a command orset of commands; and/or (iii) enabling the self-propelled device 414 tocommunicate data regarding that device's position, movement and/or statein order to effect a state on the computing device 408 (e.g., displaystate, such as content corresponding to a controller-user interface).Additionally or as an alternative, the self-propelled device 414 canfurther include a programmatic interface that facilitates additionalprogramming logic and/or instructions to use the device. The computingdevice 408 can further execute programming that is communicative withthe programming logic on the self-propelled device 414.

Additionally, the self-propelled device 414 can include an actuator ordrive mechanism causing motion or directional movement. Theself-propelled device 414 can be referred to by a number of relatedterms and phrases, including controlled device, robot, robotic device,remote device, autonomous device, and remote-controlled device.Furthermore, the self-propelled device 414 can be structured to move andbe controlled in various media. For example, the self-propelled device414 can be configured for movement in media such as on flat surfaces,sandy surfaces rocky surfaces, etc.

The self-propelled device 414 can be implemented in various forms. Asdescribed above with respect to FIGS. 1 and 2, the self-propelled device414 can correspond to a tube-shaped object that can roll and/or performother movements such as spinning. In variations, the device 414 cancorrespond to a radio-controlled aircraft, such as an airplane,helicopter, hovercraft or balloon. In other variations, the device 414can correspond to a radio controlled watercraft, such as a boat orsubmarine. Numerous other variations may also be implemented, such asthose in which the device 414 is a robot. Further still, the device 414can include a sealed hollow body, roughly cylindrical in shape, andcapable of directional movement by action of actuators or motors insidethe enclosed body.

Continuing to refer to FIG. 4A, the device 414 can be configured tocommunicate with the computing device 408 using network communicationlinks 410 and 412. For example, link 410 transfers data from thecomputing device 408 to the self-propelled device 414. Furthermore, link412 transfers data from the self-propelled device 414 to the computingdevice 408. Links 410 and 412 are shown as separate unidirectional linksfor illustrative purposes, however, a single bi-directionalcommunication link can be utilized to perform communication in bothdirections. Furthermore, links 410 and 412 are not necessarily identicalin type, bandwidth or capability. For example, the communication link410 from the computing device 408 to the self-propelled device 414 canbe capable of a higher communication rate and bandwidth compared to thelink 412 from the self-propelled device 414 to the computing device 408.In some situations, only one unidirectional link can be establishedbetween the computing device 408 and the self-propelled device 414 suchthat the self-propelled device 414 is capable of being controlled viathe computing device 408.

The computing device 408 can correspond to any device comprising atleast a processor and communication capability suitable for establishingat least unidirectional communications with the self-propelled device414. Examples of such devices include, without limitation: mobilecomputing devices (e.g., multifunctional messaging/voice communicationdevices such as smart phones), tablet computers, portable communicationdevices and personal computers. Thus, the computing device 408 may be anIPHONE available from APPLE COMPUTER, INC. of Cupertino, Calif.Alternatively, the computing device 408 may be an IPAD tablet computer,also from APPLE COMPUTER. Alternatively, the computing device 408 may beany of a variety of handheld computing devices and communicationappliances executing an ANDROID operating system from GOOGLE, INC. ofMountain View, Calif.

Alternatively, the computing device 408 may be a personal computer, ineither a laptop or desktop configuration. For example, the computingdevice 408 may be a mufti-purpose computing platform running a MICROSOFTWINDOWS operating system, or a LINUX operating system, or an APPLEoperating system, configured with an appropriate application program tocommunicate with the self-propelled device 414. However, in variations,the computing device 408 can be a specialized device, dedicated forenabling the user 402 to control and interact with the self-propelleddevice 414.

Additionally or as an alternative, multiple types of computing devicescan be used interchangeably to communicate with the self-propelleddevice 414. Thus, the self-propelled device 414 may be capable ofcommunicating and/or being controlled by multiple devices (concurrentlyor one at a time). For example, the self-propelled device 414 can linkwith an IPHONE in one session and with an ANDROID device in a latersession, without modification of the self-propelled device 414.

Accordingly, the user 402 can interact with the self-propelled device414 via the computing device 408 in order to control the self-propelleddevice 414 and/or to receive feedback or interaction on the computingdevice 408 from the self-propelled device 414. Furthermore, the user 402may be enabled to specify input 404 through various mechanisms that areprovided with the computing device 408. Examples of such inputs includetext entry, voice command, touching a sensing surface or screen of thecomputing device 408, physical manipulations, gestures, taps, shakingand combinations of the above. Additionally or alternatively, the input404 is made via an application specific to controlling theself-propelled device 414. Such an application can provide a graphicalinterface that allows for powering and steering the self-propelleddevice 414.

Further still, the user 402 can interact with the computing device 408in order to receive feedback 406. The feedback 406 can be generated onthe computing device 408 in response to the user input 404. As anaddition or alternative, the feedback 406 can also be based on datacommunicated from the self-propelled device 414 to the computing device408, regarding, for example, the self-propelled device's 414 position orstate. Without limitation, examples of feedback 406 include textdisplay, graphical display, sound, music, tonal patterns, modulation ofcolor and/or intensity of light, haptic, vibrational, and/or tactilestimulation. The feedback 406 can be combined or otherwise synchronizedwith input that is generated on the computing device 408. For example,the computing device 408 may output content that is modified to reflectposition or state information communicated from the self-propelleddevice 414.

In some embodiments, the computing device 408 and/or the self-propelleddevice 414 can be configured such that the user input 404 and thefeedback 406 can maximize usability and accessibility for the user 402,who may have limited sensing, thinking, perception, motor skills, orother limited abilities. This can allow users with handicaps or specialneeds to operate within the system 400 as described.

Example configurations described and illustrated in FIG. 4A are only afew of many possible configurations of networks including aself-propelled device 414 with wireless communication capability.Furthermore, while numerous embodiments described herein provide for theuser 402 to operate or otherwise directly interface with the computingdevice 408 in order to control and/or interact with the self-propelleddevice 414, variations to embodiments described encompass enabling theuser 402 to directly control or interact with the self-propelled device414 without the use of an intermediary device such as the computingdevice 408.

FIG. 4B depicts a system 418 comprising a plurality of computing devices(420, 428) and self-propelled devices (424, 432, 436, 438). In theexamples provided by FIG. 4B, system 418 includes a first computingdevice 420, a second computing device 428, four self-propelled devices424, 432, 436, and 438, and communication links 422, 426, 430, 434 and439. The communication of the first computing device 420 with theself-propelled device 424 using the link 422 is similar to theembodiment depicted in the system 400 of FIG. 4A. However, additionalcommunication can be established between the two computing devices 420,428 via the network link 426.

Further, the first and second computing devices 420, 428 can optionallycontrol more than one self-propelled device. Further still, eachself-propelled device 424, 432, 436, 438 can be controlled by more thanone computing device 420, 428. For example, the second computing device428 can establish multiple communications links, including with theself-propelled devices 432 and 436, and the first computing device 420.

In variations, the first and second computing devices 420, 428 can alsocommunicate with one or more self-propelled devices using a network suchas the Internet, or a local wireless network (e.g., a home network). Forexample, the second computing device 428 is shown to have acommunications link 439, which can connect the seconding computingdevice 428 to an Internet server, a web site, or to another computingdevice at a remote location. As such, the second computing device 428can serve as an intermediary between the network source and one or moreself-propelled devices. For example, the second computing device 428 canaccess programming from the Internet and communicate that programming toone of the self-propelled devices.

As an alternative or variation, the computing device 428 can enable anetwork user to control the second computing device 428 in controllingone or more of the self-propelled devices 432, 436, etc. Still further,the computing device 428 can access the network source in order toreceive programmatically triggered commands, such as a command initiatedfrom a network service that causes one or more of the self-propelleddevices to update or synchronize using the computing device 428. Forexample, the self-propelled device 432 can include image capturingresources, and a network source can trigger the computing device 428 toaccess the images from the self-propelled device, and/or to communicatethose images to the network source over the Internet.

In variations, such remote network functionality can alternatively becommunicated directly from a network source to the self-propelleddevices 424, 432, 436. Thus, the first and second computing devices 420,428 may be optional. Alternatively, the first and second computingdevices 420, 428 may be separated from the self-propelled devices 424,432, 436 by a network such as the Internet. Thus, the computing devices420, 428 can alternatively be the network sources that remotely controland/or communicate with the self-propelled devices.

Data communication links depicted in FIGS. 4A, 4B, and 4C are shown asshort and direct for purposes of illustration. However, actual links maybe much more varied and complex. For example, link 426 connecting thetwo computing devices 420, 428 can be a low-power wireless link if thecomputing devices 420 and 428 are in close proximity. However, thecomputing devices 420, 428 can be spaced a great distance apart (e.g.,separated by miles or geographic barriers) so long as suitable networkcommunication can be established. Thus, the link 426, and all otherlinks 422, 430, 434, and 439 can employ a variety of networktechnologies, including the Internet, World Wide Web, wireless links,wireless radio-frequency communications utilizing network protocol,optical links, or any available network communication technology. Thefinal connection to self-propelled devices 424, 432, 436 and 438 mayalso be wireless so connecting wires do not restrict mobility.

For example, the communication links 422, 426, 430 and 434 may be basedon the BLUETOOTH wireless communication standard.

BLUETOOTH is widely available and provides a flexible communicationplatform for establishing data networks using short-wavelength radiotransceivers and data encoding. Furthermore, BLUETOOTH incorporatessecurity features to protect the data sent on the links fromunauthorized observers or interference. Alternative wirelesscommunication medium may also be employed, such as wireless USB, Wi-Fi,or proprietary wireless communications. Furthermore, one or more of thecommunication links 422, 426, 430 and 434 may utilize short-rangeradiofrequency (RF) communication, and/or line-of-sight communications.

Additionally or alternatively, the communication links may be based onother wireless communication systems, such as Wi-Fi, IEEE 802.11a,802.11b, 802.11g, 802.11n, 802.11ac, 802.11ad, and/or 802.11ahstandards. However, other radio frequency data links may be createdusing other cellular telephone service or serial communication protocolsusing radio modems. Alternatively, optical communication links may beemployed, including modulating properties of light and LASER beams.Further, any suitable communication technology can be used to form thenetwork links, whether presently known or available in the future. Assuch, the features described herein are not dependent on any particularnetworking technology or standard.

Further still, the communication established amongst the devices, suchas amongst the computing devices 420, 428 and/or the self-propelleddevices 424, 432, 436, can be temporary, flexible, and/orreconfigurable. A resulting network of such devices can be considered an“ad-hoc” network, or alternatively a “piconet” or “personal areanetwork.” In this respect, some implementations provide that thecomputing device's 420, 428 and the self-propelled devices 424, 432, 436can be considered nodes of the network, such as an ad-hoc network. Insuch configurations, network components, topology and communicationspaths are flexible and can be readily adjusted to accommodate additionor removal of devices, changing communication requirements or channelinterference. For example, the self-propelled device 438 in FIG. 4B isshown with no present network connection. However, the self-propelleddevice 438 may have connected to the network 418 in the past andreceived instructions to enable it to operate without a persistentnetwork link.

FIG. 4C is a schematic that illustrates a system 468 comprising acomputing device 440 and multiple self-propelled devices 444, 450, 454.The computing device 440 can be operable to communicate with one or moreself-propelled devices 444, 450, 454. The computing device 440 cancommunicate commands or other control data, and receive feedback similarto variations described above. The self-propelled devices 444, 450, 454can be configured to communicate and/or be controlled by the computingdevice 440. Additionally, the self-propelled devices 444, 450, 454 canbe configured to communicate and/or control one another.

In examples shown by FIG. 4C, the computing device 440 can communicatewith a primary self-propelled device 444 using communications link 442.The primary self-propelled device 444 can then communicate with anotherself-propelled device 450 using a separate link 446 and with a thirdself-propelled device 454 using another separate link 448. Also, theself-propelled devices 450, 454 can communicate with each other usingthe communication link 452. The computing device 450 can send data toany of the other self-propelled devices 450, 454, using the primaryself-propelled device 444 as a relay. Alternatively, the computingdevice 440 can communicate with the other self-propelled devices 450,454 directly.

The system 468 can include various configurations. For example, a usercan operate the computing device 440 to control the primaryself-propelled device 444. Movement of the primary self-propelled device444 can be communicated both to the computing device 440 and to one ormore of the other self-propelled devices 450, 454. Each of theself-propelled devices can be preprogrammed to react in a specificmanner based on state or position information communicated from anotherone of the self-propelled devices. For example, the self-propelleddevices 450, 454 can each be operated in a repel mode, so that themovement of the primary self-propelled device 444 (as controlled fromthe computing device 440) results in a repel motion by the otherself-propelled device 450. In other variations, the self-propelleddevices 444, 450, 454 may be preprogrammed to maintain a specificdistance apart from one another, so that movement by one deviceautomatically causes movement by the other two devices. Still further,the self-propelled devices 444, 450, 454 may be configured so as toperform a variety of activities, such as, for example, (i) oneself-propelled device automatically moving when another approaches athreshold distance; (ii) one self-propelled device programmaticallymoving to bump another self-propelled device; (iii) the self-propelleddevices automatically moving in tandem based on input received by eachof the self-propelled devices from the other self-propelled devices orfrom the computing device 440, and/or variations thereof.

The various systems 400, 418, 468 are for illustrative purposes. Withany of the systems described, variations include the addition of more orfewer computing devices, and/or more or fewer self-propelled devices. Asdescribed with some variations, additional sources or nodes can beprovided from a remote network source. Additionally, in some operationalenvironments, the presence of the computing device is optional. Forexample, the self-propelled devices can be partially or completelyautonomous, using programming logic to function.

FIG. 5 illustrates a mechanism for moving the self-propelled device 500.As illustrated in FIG. 5, the cylindrical self-propelled device 500 isshown from a side perspective along a center of rotation 502, or alongan axis corresponding to the wheel axles. As further illustrated in FIG.5, the self-propelled device 500 has an “at rest” center of mass 506that is below the center of rotation 502, with the outer circumferencesof the wheels or tires 510 in contact with a surface 512. The drivemechanism for the self-propelled device 500 can include twoindependently-controlled motors 508 (second motor not shown), eachproviding power to a respective wheel. Several components of device 500are not shown in FIG. 5 for simplicity of illustration.

The cylindrical self-propelled device 500 can move linearly forward byessentially displacing the at rest center of mass 506 (first point) tothe “actual” center of mass 514 (second point) by pitching the entiredrive system 518 and/or the other interior components of theself-propelled device 500 forward and upward relative to center ofrotation 502 by action of the motors 508. For example, the motors 508can actuate in conjunction to pitch the drive system 518 forward andupward such that the center of mass is displaced from the first point506 to the second point 514. Such displacement of the center of masscauses the self-propelled device 500 to roll forward in the direction ofmovement 516. For practical purposes, the angle of pitch can be anyangle between 0-90 degrees, although angles higher than 90 degrees mayresult from rapid acceleration of the self-propelled device 500.

Actuation of the motors 508 allowing for rotational pitch of the drivesystem 518 may be achieved in any number of ways. For example, a mass ofthe wheels, tires 510, and hub covers collectively may be greater than amass of the body and interior components of the self-propelled device500. This causes rotation of the body and interior components initially,which in turn causes the center of mass to be displaced, allowing theself-propelled device 500 to “fall” towards the displaced center ofmass. A weight ratio between the wheels and the interior components maybe substantially equivalent, between 1:1 and 2:1. However, any suitableweight ratio between the wheels and interior components can be utilizedto drive the self-propelled device 500 in the above manner.

Referring still to FIG. 5, motion of the self-propelled device 500 canbe visualized in simple a vector diagram 520. The vector diagram 520illustrates a simplified view of the forces acting on the self-propelleddevice 500 as the drive system 518 is rotationally pitched. At rest, thecenter of mass is located at cm₁ with only the force of gravity (F_(g0))acting on the device 500. When power is applied by the motors 508 inconjunction, the drive system 518 is pitched at an angle θ, displacingthe center of mass from cm₁ to cm₂. Given that the F_(g) vector has aconstant direction, a net force acting on the self-propelled device(F_(net)) can be visualized in the direction from the axis of rotationto cm₂ (as shown) with a value equal to F_(g0). As shown in the vectordiagram 520, a net gravitational force acting on the device 500 can bevisualized as F_(g1), leaving only a lateral force (F_(x)) acting on theself-propelled device 500 in the direction of movement 516.

FIGS. 6A and 6B illustrate examples for causing directional change ofthe self-propelled device viewed from above. Referring to FIG. 6A, thecylindrical self-propelled device 600 can initially be at rest or movinglinearly. With respect to linear motion, the right and left motors 602,604 may act on the wheels 606, 608 in conjunction. As viewed from above,a control on the self-propelled device 600 to turn left, for example,may be processed via programmatic commands to add more power to theright motor 602 in relation to the left motor 604, causing theself-propelled device 600 to turn left. Alternatively, the programmaticcommands may instruct the left motor 604 to reduce power relative to theright motor 602, also causing the self-propelled device 600 to turnleft.

Similarly, FIG. 6B illustrates a similar process for causing directionalchange of the self-propelled device 610. In examples of FIG. 6B, thecylindrical self-propelled device 610 may also initially be at rest ormoving linearly. With respect to linear motion, the left and rightmotors 612, 614 can act on the wheels 616, 618 in conjunction. As viewedfrom above, a control on the self-propelled device 610 to turn right,for example, can also be processed via programmatic commands to add morepower to the left motor 612 in relation to the right motor 614, causingthe self-propelled device 610 to turn right. Alternatively, theprogrammatic commands can instruct the right motor 614 to reduce powerrelative to the left motor 612, also causing the self-propelled device610 to turn left.

FIGS. 7A and 7B illustrate examples of self-propelled devices 700, 710with attached example accessories. The self-propelled devices 700, 710are cylindrical in shape and at least substantially the same as thosediscussed above. As shown in FIG. 7A, the cylindrical self-propelleddevice 700 can include a fastening means 702 such as a clasp or othersuitable fastener to attach any number of accessories. The example ofFIG. 7A shows an illuminating element 704, such as a headlamp, fastenedto the body of the self-propelled device 700. The example of FIG. 7Bshows a trailer 714 being towed behind the self-propelled device 710. Insuch examples, the fastening means 712 can be more complex and involveany number of components allowing for proper attachment of a variety ofaccessories.

CONCLUSION

It is contemplated for embodiments described herein to extend toindividual elements and concepts described herein, independently ofother concepts, ideas or system, as well as for embodiments to includecombinations of elements recited anywhere in this application. Althoughembodiments are described in detail herein with reference to theaccompanying drawings, it is to be understood that this disclosure isnot limited to those precise embodiments. As such, many modificationsand variations will be apparent to practitioners skilled in this art.Accordingly, it is intended that the scope of this disclosure be definedby the following claims and their equivalents. Furthermore, it iscontemplated that a particular feature described either individually oras part of an embodiment can be combined with other individuallydescribed features, or parts of other embodiments, even if the otherfeatures and embodiments make no mentioned of the particular feature.Thus, the absence of describing combinations should not preclude theinventor from claiming rights to such combinations.

One or more embodiments described herein provide that methods,techniques and actions performed by a computing device are performedprogrammatically, or as a computer-implemented method. Programmaticallymeans through the use of code, or computer-executable instructions. Aprogrammatically performed step may or may not be automatic.

One or more embodiments described herein may be implemented usingprogrammatic modules or components. A programmatic module or componentmay include a program, a subroutine, a portion of a program, or asoftware component or a hardware component capable of performing one ormore stated tasks or functions. As used herein, a module or componentcan exist on a hardware component independently of other modules orcomponents. Alternatively, a module or component can be a shared elementor process of other modules, programs or machines.

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown or described with FIGs below provide examples ofprocessing resources and computer-readable mediums on which instructionsfor implementing embodiments can be carried and/or executed. Inparticular, the numerous machines shown with embodiments includeprocessor(s) and various forms of memory for holding data andinstructions. Examples of computer-readable mediums include permanentmemory storage devices, such as hard drives on personal computers orservers. Other examples of computer storage mediums include portablestorage units (such as CD or DVD units), flash memory (such as carriedon many cell phones and tablets)), and magnetic memory. Computers,terminals, network enabled devices (e.g., mobile devices such as cellphones) are all examples of machines and devices that utilizeprocessors, memory and instructions stored on computer-readable mediums.Additionally, embodiments may be implemented in the form ofcomputer-programs, or a computer usable carrier medium capable ofcarrying such a program.

Although illustrative embodiments have been described in detail hereinwith reference to the accompanying drawings, variations to specificembodiments and details are encompassed by this disclosure. It isintended that the scope of the invention is defined by the followingclaims and their equivalents. Furthermore, it is contemplated that aparticular feature described, either individually or as part of anembodiment, can be combined with other individually described features,or parts of other embodiments. Thus, absence of describing combinationsshould not preclude the inventor(s) from claiming rights to suchcombinations.

While certain embodiments have been described above, it will beunderstood that the embodiments described are by way of example only.Accordingly, this disclosure should not be limited based on thedescribed embodiments. Rather, the scope of the disclosure should onlybe limited in light of the claims that follow when taken in conjunctionwith the above description and accompanying drawings.

What is claimed is:
 1. A self-propelled device comprising: a substantially cylindrical body; a drive system comprising a left motor configured to operate a left wheel, a right motor configured to operate a right wheel, and one or more power units configured to power the left and right motors, the drive system having a center of mass below a common rotational axis of both the left and right wheels, wherein the left and right motors are configured to operate either independently or in conjunction; a receiver configured to receive control inputs from a controller device; a processor configured to process the control inputs for maneuvering the self-propelled device, the processor to independently control operation of the left motor and the right motor; wherein actuation of the left motor and the right motor causes the drive system to pitch rotationally causing a displacement in the center of mass of the drive system in order to cause the self-propelled device to move.
 2. The self-propelled device of claim 1, wherein the body includes one or more fastening means to fasten one or more attachable accessories to the self-propelled device.
 3. The self-propelled device of claim 2, wherein the one or more attachable accessories comprise one or more of: a light-emitting element; a camera; or a trailer attachment.
 4. The self-propelled device of claim 1, wherein the self-propelled device is operable in a plurality of modes, including an autonomous mode and a controlled mode.
 5. The self-propelled device of claim 1, wherein the processor (i) interprets the control inputs as one or more commands, and (ii) implements a control on the drive system based at least in part on the one or more commands.
 6. The self-propelled device of claim 1, wherein the body is at least partially transparent.
 7. The self-propelled device of claim 6, further comprising a light-emitting element coupled to a fastening means on the drive system and disposed within the body, wherein the body is textured to diffuse light from the light-emitting element.
 8. The self-propelled device of claim 1, wherein, when operating in conjunction, the left and right motors are configured to engage in concert to rotationally pitch the drive system, allowing for linear motion of the self-propelled device in directions perpendicular to the common rotational axis of the left and right wheels.
 9. The self-propelled device of claim 1, wherein when operating independently, the left and right motors are further configured to cause directional change of the self-propelled device.
 10. The self-propelled device of claim 1, further comprising a memory coupled to the processor, the memory to store programmatic instructions that translate the control inputs into commands for operating each of the left motor and the right motor.
 11. The self-propelled device of claim 10, wherein the control inputs are received from the controller device via a software application unique to controlling the self-propelled device, wherein the controller device is one of (i) a smart phone, (ii) a tablet computer, (iii) a laptop device, (iv) a desktop device, or (v) a specialized remote control.
 12. The self-propelled device of claim 10, wherein execution of the software application automatically links the computing controller device to the self-propelled device.
 13. The self-propelled device of claim 1, wherein the substantially cylindrical body is detachable from the self-propelled device.
 14. The self-propelled device of claim 1, further comprising one or more sensors that provide information about a surrounding environment, wherein the one or more sensors provide input to enable the processor to maintain awareness of the self-propelled device's orientation relative to a reference point after the self-propelled device initiates movement.
 15. The self-propelled device of claim 14, wherein the one or more sensors comprise one or more of: a gyroscope; an accelerometer; or a magnetometer.
 16. The self-propelled device of claim 1, further comprising an expansion port usable to add at least one additional component to the self-propelled device.
 17. The self-propelled device of claim 16, wherein the expansion port further comprises an electrical interface capable of interfacing with the at least one additional component.
 18. The self-propelled device of claim 16, wherein the at least one additional component comprises one or more of: of a sensor; a peripheral; a display; processing hardware; storage; or actuator.
 19. The self-propelled device of claim 1, further comprising a display operable to present visual cues or information to an external device or person.
 20. The self-propelled device of claim 19, wherein the display operates in conjunction with the left and right motor to communicate information by physical movement of the device. 